﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using Microsoft.Reporting.WebForms;

namespace Biciq.Web.UI.Reportes
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Reportes();

            }
        }
        private void Reportes()
        {
            if (Request.QueryString["Reporte"] != null)
            {


                switch (Request.QueryString["Reporte"].ToString())
                {
                    case "AperturaCaja":
                        AperturaCaja();
                        break;

                    case "Coordinacion":
                        ReporteCarnetsEmpleado();
                        break;

                          case "Gerencia":
                        ReporteCarnetsEmpleado();
                        break;


                          case "OperadorApoyo":
                        ReporteCarnetsEmpleado();
                        break;
                          case "OperadorBalance":
                        ReporteCarnetsEmpleado();
                        break;
                          case "OperadorEstacion":
                        ReporteCarnetsEmpleado();
                        break;
                          case "OperadorMecanica":
                        ReporteCarnetsEmpleado();

                        break;


                        







                    default:
                        ReportesSinParametro();
                        break;
                    
                }
            }
            else
            {
                ImprimirReporte();
            }


        }
        private void ReporteCarnetsEmpleado()
        {

            string reporte = Request.QueryString["Reporte"].ToString();

            string servidorReportes = new AppSettingsReader().GetValue("ServidorReportes", reporte.GetType()).ToString();
            string carpeta = new AppSettingsReader().GetValue("CarpetaReportes", reporte.GetType()).ToString();
            try
            {




                ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
                ReportViewer1.ServerReport.ReportServerUrl = new Uri(servidorReportes);

                ReportViewer1.ServerReport.ReportPath = carpeta + reporte;


                ReportParameter parametro = new ReportParameter();
                parametro.Name = "id";
                parametro.Values.Add(Request.QueryString["Id"].ToString());
                parametro.Visible = false;

                //Crearemos un arreglo de parámetros
                ReportParameter[] rp = { parametro };

                ReportViewer1.ServerReport.SetParameters(rp);
                //Ahora agregamos el parámetro en al reporte




                ReportViewer1.ServerReport.Refresh();
            }

            catch (Exception ex)
            {

                ex.Message.ToString();



            }
        }


        private void ReportesSinParametro()
        {
            string reporte = Request.QueryString["Reporte"].ToString();
            string servidorReportes = new AppSettingsReader().GetValue("ServidorReportes", reporte.GetType()).ToString();
            string carpeta = new AppSettingsReader().GetValue("CarpetaReportes", reporte.GetType()).ToString();
            ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
            ReportViewer1.ServerReport.ReportServerUrl = new Uri(servidorReportes);

            ReportViewer1.ServerReport.ReportPath = carpeta + reporte;

            ReportViewer1.ServerReport.Refresh();
        }


        private void AperturaCaja()
        {
            string reporte = "AperturaCaja";
            string servidorReportes = new AppSettingsReader().GetValue("ServidorReportes", reporte.GetType()).ToString();
            string carpeta = new AppSettingsReader().GetValue("CarpetaReportes", reporte.GetType()).ToString();
            string idAperturaCaja = Request.QueryString["Id"].ToString();


        }
        private void ImprimirReporte()
        {
            string reporte = Request.QueryString["carnet"].ToString();

            if (Request.QueryString["Tipo"].ToString() == "Empleado")
            {
                reporte = "CarnetEmpleado";
            }

            string servidorReportes = new AppSettingsReader().GetValue("ServidorReportes", reporte.GetType()).ToString();
            string carpeta = new AppSettingsReader().GetValue("CarpetaReportes", reporte.GetType()).ToString();
            try
            {




                ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
                ReportViewer1.ServerReport.ReportServerUrl = new Uri(servidorReportes);

                ReportViewer1.ServerReport.ReportPath = carpeta + reporte;


                ReportParameter parametro = new ReportParameter();
                parametro.Name = "id";
                parametro.Values.Add(Request.QueryString["Id"].ToString());
                parametro.Visible = false;

                //Crearemos un arreglo de parámetros
                ReportParameter[] rp = { parametro };

                ReportViewer1.ServerReport.SetParameters(rp);
                //Ahora agregamos el parámetro en al reporte




                ReportViewer1.ServerReport.Refresh();
            }

            catch (Exception ex)
            {

                ex.Message.ToString();



            }
        }
    }
}